1. Field of the Invention
The present invention relates to image processing apparatuses and application executing methods. Particularly, the present invention relates to an image processing apparatus having an input unit for entering data that is subjected to image processing, and an output unit for outputting a result of image processing.
2. Description of the Related Art
Modern image processing apparatuses, such as printers, copiers, scanners, facsimile machines, and multifunction peripherals, the last of which incorporate the aforementioned functions within a single casing, are equipped with a central processing unit (CPU) similar to that in general-purpose computers, although its memory or other capacities may be limited. Each of those multiple functions is realized by controlling applications.
For example, Japanese Patent No. 3679349 discloses an image processing apparatus having a platform of functions that are commonly utilized by each application, where an application can be implemented by using an application program interface (API) of the platform. In this image processing apparatus, the platform of the commonly utilized functions avoids the overlapping implementation of functions among the applications, thereby enhancing the efficiency of development of the entire applications.
Generally, unless the granularity of a function or an interface provided by the platform having the commonly utilized API is properly designed, an expected level of improvement in application development efficiency cannot be achieved.
For example, if the granularity is too small, an application that provides a simple service would require a number of API calls, resulting in a complex source code.
On the other hand, if the granularity is too large, when it is desired to implement an application that provides a service that modifies a part of a function provided by a certain interface, it becomes necessary to modify the platform internally, possibly resulting in an increase in the number of development steps. Particularly, when the individual modules within the platform are strongly dependent upon one another, it may become necessary to modify existing portions in addition to adding a new function to the platform, thus further complicating the matter.
When it is desired to implement an application that modifies a part (such as an image input process) of a service provided by an existing application, portions of the existing application other than the particular part cannot be called. Thus, a new application needs to be implemented by newly describing a source code.